/* 基于数组的队列 */

#ifndef __QUEUE_BASE_ARRAY_H__
#define __QUEUE_BASE_ARRAY_H__

#include <stdlib.h>
#include <stdio.h>

/* 队列 */
typedef struct Queue {
	int*   arr;   /* 数组 */
	int    cap;   /* 容量 */
	int    front; /* 前端(弹出) */
	int    back;  /* 后端(压入) */
	int    size;  /* 大小 */
}QUEUE;

/* 创建 */
QUEUE* queue_create (int cap);

/* 销毁 */
void queue_destroy (QUEUE* queue);

/* 压入 */
void queue_push (QUEUE* queue, int data);

/* 弹出 */
int queue_pop (QUEUE* queue);


/* 清空 */
void queue_clear (QUEUE* queue);

/* 大小 */
int  queue_size (QUEUE* queue);

/* 判满 */
int queue_full (QUEUE* queue);

/* 判空 */
int queue_empty (QUEUE* queue);

#endif 
